package com.ato.GenericTest;

import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

/**
 * @author wangjing
 * @create 2021--12--08--20:39
 * 自定义泛型类
 */
public class CustomGeneric {
    @Test
    public void test1() {
//        1：使用时，用了泛型就一定要使用，否则没有意义
//        2：继承时，如果父类规定了泛型的类型，子类可以不用写泛型，它如果调用了父类的方法（泛型），那么他也会是按照该泛型的类型来设置
//         class A extends class B<String>{}
//        3：继承时，如果父类没有规定泛型的类型，那么依然要写  class A<T> extends class B<T>{}
        Result<String> mapResult = new Result<>();
    }
    @Test
    public  <E> List<E> copy(E[] arr){
        return new ArrayList<>();
    }
}

class Result<T> {
    int id;
    String message;
    T data;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    // 返回值类型 也是 T
    public T getData() {
        return data;
    }

    //  参数类型也是T
    public void setData(T data) {
        this.data = data;
    }
}